home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / maestro / source / timeline / main.h < prev    next >
Encoding:
Text File  |  1993-06-15  |  20.7 KB  |  506 lines

  1. /*
  2.  * Copyright (c) 1990, 1991 Stanford University
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software and 
  5.  * its documentation for any purpose is hereby granted without fee, provided
  6.  * that (i) the above copyright notices and this permission notice appear in
  7.  * all copies of the software and related documentation, and (ii) the name
  8.  * Stanford may not be used in any advertising or publicity relating to
  9.  * the software without the specific, prior written permission of
  10.  * Stanford.
  11.  * 
  12.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  13.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  14.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  15.  *
  16.  * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
  17.  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
  18.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT
  19.  * ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY,
  20.  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  21.  * SOFTWARE.
  22.  */
  23.  
  24. /* $Header: /Source/Media/collab/TimeLine/RCS/main.h,v 1.12 92/10/07 15:15:42 drapeau Exp $ */
  25. /* $Log:    main.h,v $
  26.  * Revision 1.12  92/10/07  15:15:42  drapeau
  27.  * New version of TimeLine adds two command-line options: "-autoPlay" and
  28.  * "-autoQuit".  "-autoPlay" indicates that TimeLine should immediately begin
  29.  * performance of the document given on the command line (if there is one).
  30.  * "-autoQuit" indicates that TimeLine should quit immediately after
  31.  * completion of performance of the document given on the command line.
  32.  * The "-autoQuit" flag is only valid if "-autoPlay" is also specified.
  33.  * These two options were added to support automated demos using TimeLine.
  34.  * 
  35.  * Revision 1.11  92/09/24  17:13:15  drapeau
  36.  * Added code to support synchronization information when available:
  37.  * * Defined three new constants to indicate whether a document has
  38.  *   synchronization information available (a.k.a., "sync hints") or not,
  39.  *   or whether the document is currently generating sync hints (as when the
  40.  *   author chooses "Synchronize This Document" from the TimeLine's Play menu).
  41.  * * Added a field to the "TimeLineFrame" structure: the "syncHints" field
  42.  *   is set to one of the defined constants just mentioned.
  43.  * Other changes are cosmetic to improve readability and better conform to
  44.  * ANSI-C standards.
  45.  * 
  46.  * Revision 1.1  92/01/03  17:33:14  drapeau
  47.  * Removed inclusion of string.h, letting the XView headers
  48.  * include the proper definitions.
  49.  * 
  50.  * Revision 1.0  91/09/30  17:03:42  chua
  51.  * Update to version 1.0
  52.  * 
  53.  * Added a new element to the tlFrame data structure : TimeLinePort.
  54.  * 
  55.  * Revision 0.85  91/09/25  14:05:20  chua
  56.  * Changed InitInstInfoWindow to InitEditInfoWindow.
  57.  * 
  58.  * Revision 0.84  91/09/25  13:43:36  chua
  59.  * Changed the name InstrumentInfo to EditInfo
  60.  * 
  61.  * Revision 0.83  91/09/23  17:22:34  chua
  62.  * Introduced a new element, noteInstrument to the tlFrame structure.
  63.  * This keeps track of which instrument has the currently selected note.
  64.  * 
  65.  * Revision 0.82  91/09/20  15:04:47  chua
  66.  * Added the extern declarations of the functions in cursor.c
  67.  * 
  68.  * Revision 0.81  91/09/19  17:28:52  chua
  69.  * Make sure that variables are initialized properly.  Change formatting slightly,
  70.  * so that (if, for, while) statements with only one statement in them will not have
  71.  * braces.
  72.  * 
  73.  * Revision 0.80  91/09/17  17:20:35  chua
  74.  * Renamed Region to tlRegion.
  75.  * 
  76.  * Revision 0.79  91/09/16  15:15:35  chua
  77.  * 
  78.  * Deleted the include line for Browse.h (it is now only included in the files that
  79.  * require it).
  80.  * 
  81.  * Revision 0.78  91/09/09  15:03:43  chua
  82.  * Include the extern declarations of AlertMessage and GetUnknownIcon.
  83.  * 
  84.  * Revision 0.77  91/09/04  15:14:16  chua
  85.  * Deleted the TimeLineHome variable and added a new Server_image variable,
  86.  * unknownIcon, which stores the server image for the unknown icon.
  87.  * 
  88.  * Revision 0.76  91/08/26  14:22:16  chua
  89.  * Removed the actualApps variable from the tlFrame structure.
  90.  * 
  91.  * Revision 0.75  91/08/21  16:54:47  chua
  92.  * Defined 3 new constants: 
  93.  * PingTimes - number of times to ping an application to see if it is responding
  94.  * TimeThreshold - the time between a double click
  95.  * DistanceThreshold - the amount of distance a mouse can move while detecting a
  96.  *             double click or positioning the playback head.
  97.  * 
  98.  * Revision 0.74  91/08/20  16:16:58  chua
  99.  * Make the startApp and numApps variable previously declared as static in play.c global.
  100.  * This is to allow their usage by the functions in stop.c
  101.  * 
  102.  * Revision 0.73  91/08/16  17:07:59  chua
  103.  * Changed the OpenPanel include file to Browse.
  104.  * 
  105.  * Revision 0.72  91/08/16  13:52:59  chua
  106.  * Introduced a new constant, Waiting, which is used to determine the type of 
  107.  * application icon to be drawn (with a red background).
  108.  * 
  109.  * Move the function DrawPlaybackHead to drawCanvas.c and the PauseResumeHandler to
  110.  * stop.c
  111.  * 
  112.  * Revision 0.71  91/08/12  15:17:14  chua
  113.  * Added a CloseFile definition for the optypes used for checking if changes
  114.  * have been made.
  115.  * 
  116.  * Revision 0.70  91/08/09  15:09:00  chua
  117.  * The AppCanvasRepaintHandler extern function now belongs to a new file, appCanvas.c
  118.  * 
  119.  * Revision 0.69  91/08/08  14:19:06  chua
  120.  * Added a new extern function declaration for CheckAppOpen in mute.c
  121.  * 
  122.  * Revision 0.68  91/08/05  12:58:12  chua
  123.  * Changed the extern function ScrollToMiddle to ScrollToFirstQuarter
  124.  * 
  125.  * Revision 0.67  91/08/02  11:38:02  chua
  126.  * Included two more extern function declarations for note.c:
  127.  * InsertNewNote and DrawMoveNote
  128.  * 
  129.  * Revision 0.66  91/07/30  11:27:18  chua
  130.  * Include the OpenPanel.h header file which contains the definitions for the
  131.  * file browser  
  132.  * 
  133.  * Revision 0.65  91/07/26  17:18:57  chua
  134.  * Added a few variables in the TimeLine data structure to deal with annotated
  135.  * regions.
  136.  * 
  137.  * Also declare as externs the functions in region.c that are called by other
  138.  * functions in other files.
  139.  * 
  140.  * Revision 0.64  91/07/24  10:56:41  chua
  141.  * Define MaxLabelLength to be 256 (maximum label length for a note).
  142.  * Also declare as externs the functions in pause.c that are called by functions in other
  143.  * files.
  144.  * 
  145.  * Revision 0.63  91/07/22  15:24:10  chua
  146.  * Added a few variables in the TimeLine data structure to deal with the pause markers.
  147.  * 
  148.  * Revision 0.62  91/07/18  15:02:45  chua
  149.  * Added a new variable, gridSpacing, to the TimeLine data structure to keep track of the
  150.  * grid spacing currently in use.
  151.  * 
  152.  * Revision 0.61  91/07/17  16:27:21  chua
  153.  * In the TimeLine data structure, include a pointer to the Info popup window.
  154.  * 
  155.  * Revision 0.60  91/07/17  10:08:49  chua
  156.  * Included a new variable in the TimeLine structure, canvasStart, which indicates
  157.  * the starting position (in pixels) with relation to the whole TimeLine.
  158.  * 
  159.  * Added a new file, moveCanvas.c, and defined its functions :
  160.  * ShowNewCanvas, CheckHorizontalScrolling, CheckVerticalScrolling,
  161.  * HorizontalScrollHandler, VerticalScrollHandler.
  162.  * 
  163.  * Revision 0.59  91/07/09  16:58:19  chua
  164.  * Added the extern definitions of functions which are called by other program
  165.  * modules.
  166.  * 
  167.  * Revision 0.58  91/06/27  11:50:32  chua
  168.  * Added a new constant ResumeSelectedMode, to aid with keeping track of states during
  169.  * pause and resume.
  170.  * 
  171.  * Revision 0.57  91/06/26  16:42:51  chua
  172.  * Added a new field, zoomLevel to the TimeLineFrame structure.  This indicates the current zoom
  173.  * display level.
  174.  * Also added new constants, PauseMode, PauseSelectedMode, ResumeMode.
  175.  * Another new variable is ReceiverPortNumber, which will not be used at the moment.
  176.  * 
  177.  * Revision 0.56  91/06/05  16:24:53  chua
  178.  * Delete the startUp variable from the TimeLineFrame structure as it is no longer needed.
  179.  * 
  180.  * Revision 0.55  91/06/04  17:37:18  chua
  181.  * Added the copyright comments in the beginning of the file.
  182.  * 
  183.  * Revision 0.54  91/06/04  17:27:18  chua
  184.  * Added a new variable, numberOfWindows, to indicate how many Document windows are 
  185.  * currently open.
  186.  * 
  187.  * Revision 0.53  91/06/04  10:42:31  chua
  188.  * Added a new array WindowFree to keep track of which TimeLine window is
  189.  * currently open.
  190.  * 
  191.  * Revision 0.52  91/06/03  11:12:46  chua
  192.  * Revamped the data structure so that all the data structures pertaining to
  193.  * the control of the TimeLine is encapsulated in a struct.  This allows
  194.  * multiple documents to be created by having an array of this struct.
  195.  * 
  196.  * Revision 0.51  91/05/28  12:11:02  chua
  197.  * 
  198.  * 
  199.  * Revision 0.50  91/05/24  16:37:05  chua
  200.  * *** empty log message ***
  201.  * 
  202.  * Revision 0.49  91/05/23  17:39:24  chua
  203.  * Added the object handler for the Insert Blank Time popup window XView objects.
  204.  * 
  205.  * Revision 0.48  91/05/22  16:40:19  chua
  206.  * 
  207.  * 
  208.  * Revision 0.47  91/05/22  13:56:16  chua
  209.  * 
  210.  * 
  211.  * Revision 0.46  91/05/22  11:52:15  chua
  212.  * *** empty log message ***
  213.  * 
  214.  * Revision 0.45  91/05/17  16:55:29  chua
  215.  * *** empty log message ***
  216.  * 
  217.  * Revision 0.44  91/05/17  16:55:25  chua
  218.  * *** empty log message ***
  219.  * 
  220.  * Revision 0.43  91/05/15  14:08:38  chua
  221.  * A new global variable  Instrument *selectedInstrument is added.  This is a pointer to the current 
  222.  * instrument node which has a note selected (either from the notes info panel or by clicking on it.  Note
  223.  * selection is now exclusive, meaning only one selected note per timeline document, instead of one note
  224.  * per instrument as previously.
  225.  * 
  226.  * 
  227.  * Revision 0.42  1991/05/15  02:56:57  chua
  228.  * Two constants are defined, OK and Error, as return values from function calls.  This is
  229.  * for readability of code only.
  230.  *
  231.  * Revision 0.41  1991/04/24  00:44:48  chua
  232.  * Added some new variables to deal with selection procedures.  They are:
  233.  * int areaSelected
  234.  * int startX, endX, startY, endY
  235.  * int clipDuration
  236.  * Instrument *clipInstHead
  237.  *
  238.  * Revision 0.40  1991/03/29  00:15:43  chua
  239.  * This file contains some widely used global constant definitions and global variables.  It also includes
  240.  * most of the include files necessary for the TimeLine application and this file is included by most of the
  241.  * C files.
  242.  * */
  243.  
  244. static char mainHrcsid[] = "$Header: /Source/Media/collab/TimeLine/RCS/main.h,v 1.12 92/10/07 15:15:42 drapeau Exp $";
  245.  
  246. #ifndef _main_
  247. #define _main_
  248.  
  249. #include <stdio.h>
  250. #include <sys/param.h>
  251. #include <xview/cms.h>
  252. #include <xview/xv_xrect.h>
  253. #include <xview/font.h>
  254. #include <xview/svrimage.h>
  255. #include <xview/icon.h>
  256. #include <xview/xview.h>
  257. #include <xview/notice.h>
  258. #include <xview/notify.h>
  259. #include <xview/textsw.h>
  260. #include <xview/scrollbar.h>
  261. #include <xview/panel.h>
  262. #include <MAEstro.h>
  263. #include <Receiver.h>
  264. #include <Sender.h>
  265. #include "TimeLine_ui.h"
  266. #include "EditInfo_ui.h"
  267. #include "ConnectPortManager_ui.h"
  268. #include "BlankTime_ui.h"
  269. #include "Info_ui.h"
  270. #include "Pause_ui.h"
  271. #include "Region_ui.h"
  272. #include "instrument.h"
  273.  
  274. #define MaxTimeLineWindows 10                        /* Maximum # of documents that can be opened simultaneously */
  275. #define Grey84         0                        /* Color definitions used in the canvas colormaps */
  276. #define Grey92         1
  277. #define Grey65         2
  278. #define White          3
  279. #define Red            4
  280. #define Unused2        5
  281. #define Unused3        6
  282. #define Black          7
  283. #define NumColors      8
  284.  
  285. #define Raised         0                        /* Used to determine if a box border should be raised... */
  286. #define Sunken         1                        /* ...or sunken or in wait state (background red) */
  287. #define Waiting        2
  288.  
  289. #define FileLoad     0                        /* Used for error checking when opening or saving files */
  290. #define FileSave     1
  291.  
  292. #define LoadFile    0                        /* Optypes used for checking if changes have been made. */ 
  293. #define ClearAll     1
  294. #define ConnectPM     2
  295. #define QuitTimeLine    3
  296. #define CloseFile    4
  297.  
  298. /* Define the state of the TimeLine editor */
  299. #define PlayMode        0
  300. #define PlaySelectedMode    1
  301. #define StopMode        2
  302. #define PauseMode        3
  303. #define PauseSelectedMode    4
  304. #define ResumeMode        5
  305. #define ResumeSelectedMode    6
  306.  
  307. /* Constants for synchronization routines */
  308. #define GeneratingSyncHints    0
  309. #define NoSyncHintsAvailable    1
  310. #define SyncHintsAvailable    2
  311.  
  312. /* Define if a check is ok */
  313. #define OK    0
  314. #define Error    1
  315.  
  316. #define PingTimes        4                    /* Number of times to ping an application before giving up */
  317. #define TimeThreshold       500                    /* Time interval for detection of double click (1/2 second) */
  318. #define DistanceThreshold     3                    /* Distance interval for either a double click or positioning of playback head */
  319. #define MaxWindows     10                        /* Maximum number of timeline documents that can be opened */
  320. #define TimeLineName "TimeLine"                        /* Name that this app registers with the PortManager */
  321. #define UnknownIconName "Unknown"                    /* Name of icon file for applications not known to TimeLine */
  322.  
  323. extern Attr_attribute    INSTANCE;                    /* Used to easily recover xview objects */
  324.  
  325. struct TimeLineFrame
  326. {
  327.   TimeLine_window_objects*            TimeLine_window;    /* Pointer to the base window object */
  328.   BlankTime_InsertBlankTimePopup_objects*    InsertBlankTimePopup;
  329.   Info_InfoPopup_objects            *InfoPopup;
  330.   Pause_PausePopup_objects            *PausePopup;
  331.   Region_RegionPopup_objects            *RegionPopup;
  332.   ConnectPortManager_PortManagerPopup_objects    *PortManagerPopup;
  333.   
  334.   char filename[MAXPATHLEN];                        /* Name of the current document being edited */
  335.   
  336.   /* The following are parameters required to performing drawing on the three different canvases: Application, Draw and TimeLine */
  337.   Display *dpyDraw, *dpyApp, *dpyTime;
  338.   GC gc;                                /* GC for canvas drawing */
  339.   GC gcLine;                                /* GC for the playback head, drawing mode is set to XOR */
  340.   Xv_cmsdata cms_data;
  341.   Window xidDraw, xidApp, xidTime;
  342.   Xv_Window paintWinDraw, paintWinApp, paintWinTime;
  343.   int pixelTable[NumColors];
  344.   
  345.   /* Handlers to the canvas scrollbars */
  346.   Scrollbar DrawScrollbarVer, DrawScrollbarHor, AppScrollbar, TimeScrollbar;
  347.   Scrollbar TimeScrollbarV;                        /* not used */
  348.   int areaSelected;                            /* Indicates if an area on the canvas has been selected */
  349.   int noteSelected;                            /* Indicates if a note has been selected */
  350.   int startX, endX;                            /* Start and end X positions of a selected area */
  351.   int startY, endY;                            /* Start and end Y positions of a selected area */
  352.   int startnoteX, endnoteX;                        /* Start and end X positions of a selected note */
  353.   int startnoteY, endnoteY;                        /* Start and end Y positions of a selected note */
  354.   int zoomLevel;                            /* Zoom level of the display, w/respect to edit mode level */
  355.   int status;                                /* Current state of TimeLine, whether in play or stop mode */
  356.   int numberOfApps;                            /* Number of applications currently opened */
  357.   int chosenApp;                            /* Currently chosen application */
  358.   Sender *TimeLineSender;                        /* Sender to the port manager */
  359.   Receiver *TimeLineReceiver;                        /* Receiver for the TimeLine app */
  360.   Port TimeLinePort;
  361.   int TimeLineLength;                            /* Length of the TimeLine in pixels */
  362.   int canvasStart;                            /* Starting pixel of the current TimeLine canvas */
  363.   int change;                                /* Flag to indicate if change has been made to the TimeLine document */
  364.   int gridSpacing;                            /* Indicates the spacing of the grid to be drawn (if zero, then no grid) */
  365.   long lastX;                                /* Current position of the playback head */
  366.   Instrument *instHead;                            /* Head pointer to instrument list */
  367.   Instrument *selectedInstrument;                    /* Pointer to the instrument which is currently selected (icon depressed) */
  368.   Instrument *noteInstrument;                        /* Pointer to the instrument which has a note selected */
  369.   Pause *pauseHead;                            /* Head pointer to the pause marker list */
  370.   Pause *selectedPause;                            /* Pointer to the selected pause marker */
  371.   int numPause;                                /* Number of pause markers */
  372.   int pauseEdit;                            /* The current entry in the pause marker panel list that is chosen */
  373.   Pause *donePause;                            /* Indicates that this pause has already been performed */
  374.   tlRegion *regionHead;                            /* Head pointer to the region info list */
  375.   tlRegion *selectedRegion;                        /* Pointer to the selected region node */
  376.   int numRegion;                            /* Number of regions */
  377.   int regionEdit;                            /* The current entry in the region panel list that is chosen */
  378.   int syncHints;                            /* Indicates whether sync hint information is available */
  379. };
  380.  
  381. typedef struct TimeLineFrame *TimeLineFramePtr;
  382. extern TimeLineFramePtr TimeLineWindow[MaxWindows + 1];
  383. extern int WindowFree[MaxWindows + 1];
  384. extern int paletteName;                            /* Counter to differentiate between the different palette names */
  385. extern int scrollHorStart, scrollHorEnd;                /* Horizontal start and end point of the canvas window */
  386. extern int scrollVerStart, scrollVerEnd;                /* Vertical start and end point of the canvas window */
  387. extern int numberOfWindows;                        /* Indicates how many windows are currently open */
  388.  
  389. extern char TimeLineHostname[MAXHOSTNAMELEN];                /* Hostname of PortManager that the TimeLine editor is checked with */ 
  390. extern char TimeLineHost[MAXHOSTNAMELEN];                /* Host from where the TimeLine Editor is launched */
  391.  
  392. extern int ReceiverPortNumber;                        /* Port number for the TimeLine to listen on */
  393. extern Instrument *clipInstHead;                    /* Head pointer to the selected instrument list */
  394. extern int clipDuration;                        /* Duration of the selected area in the clipboard */
  395. extern Xv_font *font;                            /* Font used in the note info panel list */
  396. extern int quitAll;                            /* Flag to indicate if quitting all TL windows is desired */
  397. extern int            autoPlay;                /* Flags to indicate command-line options telling TL... */
  398. extern int            autoQuit;                /* ...to begin playback immediately & quit after done. */
  399.  
  400. extern int startApp;                            /* The starting application to be played during playback */
  401. extern int numApps;                            /* The number of applications to be played during playback */
  402. extern Server_image unknownIcon;                    /* Server image of the unknown app icon */
  403.  
  404.                                     /* External declarations of functions */
  405. extern void CheckOptions();                        /* TimeLine.c */
  406. extern void TimeLineInit();
  407. extern void UpdateHeader();
  408. extern void AlertMessage();
  409. extern void GetUnknownIcon();
  410.  
  411. extern void CanvasInit();                        /* Canvas.c */
  412. extern void SetCanvasHeight();
  413. extern void DrawCanvasRepaintHandler();
  414. extern void TimeCanvasRepaintHandler();
  415.  
  416. extern void OpenAppsInitialize();                    /* openApps.c */
  417. extern Server_image OpenAppsFindIcon();
  418. extern Menu_item ShowApplicationHandler();
  419. extern Menu_item UpdateAppsHandler();
  420. extern Menu_item HideApplicationHandler();
  421.  
  422. extern Instrument* InstrumentNew();                    /* instrument.c */
  423. extern void AddInstrument();
  424. extern void FreeInstrumentList();
  425. extern Instrument* FindInstrument();
  426. extern void DrawTimeLine();
  427. extern void InstrumentDrawIcon();
  428. extern void InstrumentDraw();
  429.  
  430. extern int OpenHandler();                        /* file.c */
  431. extern int SaveHandler();    
  432. extern Menu_item QuitHandler();
  433.  
  434. extern void ClearAllNotes();                        /* note.c */
  435. extern void DeleteNote();
  436. extern void CalculateNoteTime();
  437. extern void AddandDisplayNewNote();
  438. extern int InsertNewNote();
  439. extern void DrawMoveNote();
  440.  
  441. extern void PlayStop();                            /* play.c */
  442. extern Menu_item    PlaySelectedHandler();
  443. extern Menu_item    PlayFromHandler();
  444. extern void        BlinkPlayButton(void);
  445. extern void        UpdatePlaybackHead(void);
  446. extern void         PrepareNoteForPerformance(Instrument*, int);
  447. extern void        ResumeOrPerformSelection(void);
  448. extern Note*        FindNextNoteToPerform(Instrument*);
  449. extern void        UpdateEndTime(Instrument*);
  450. extern void        StopPlayingSelection(void);
  451. extern void        UpdateSyncHints(int);
  452. extern int        CalculateStartTime(Instrument*);
  453.  
  454. extern void InitEditInfoWindow();                    /* notesInfo.c */
  455. extern void ShowInfoWindow();
  456. extern void InitNotesInfo();
  457. extern void SelectNoteInfo();
  458. extern void DeselectNote();
  459.  
  460. extern void DrawSelectArea();                        /* select.c */
  461. extern void CopyToClipboard();
  462. extern void DeleteNotesFromList();
  463. extern void PasteFromClipboard();
  464.  
  465. extern void DimButtons();                        /* dim.c */
  466.  
  467. extern void InstrumentMute();                        /* mute.c */
  468. extern int CheckAppOpen();
  469.  
  470. extern void ShowNewCanvas();                        /* moveCanvas.c */
  471. extern void CheckHorizontalScrolling();
  472. extern void CheckVerticalScrolling();
  473. extern Notify_value HorizontalScrollHandler();
  474. extern Notify_value VerticalScrollHandler();
  475. extern void ScrollToFirstQuarter();
  476.  
  477. extern void DrawGrid();                            /* grid.c */
  478.  
  479. extern void FreePause();                        /* pause.c */
  480. extern void UpdatePauseList();
  481. extern void ClearAllPause();
  482.  
  483. extern void FreeRegion();                        /* region.c */
  484. extern void UpdateRegionList();
  485. extern void ClearAllRegion();
  486. extern void SetStartEndRegion();
  487.  
  488. extern void AppCanvasRepaintHandler();                    /* appCanvas.c */
  489. extern int CheckDoubleClick();
  490.  
  491. extern void DrawPlaybackHead();                        /* drawCanvas.c */
  492.  
  493. extern void PauseResume();                        /* stop.c */
  494.  
  495. extern Menu_item ClearAllHandler();                    /* edit.c */
  496. extern Menu_item CopyHandler();
  497. extern Menu_item CutHandler();
  498. extern Menu_item PasteHandler();
  499.  
  500. extern void CreateCursor();                        /* cursor.c */
  501. extern void NormalCursor();
  502. extern void BusyCursor();
  503. extern void ConnectPortManager();                    /* connect.c */
  504.  
  505. #endif
  506.